This disclosure relates to the field of auto-discovering service components and configurations for service management in a distributed environment.
A distributed application, or service, is composed of many components running on different computer nodes in a network. Operational management of a distributed service entails processes such as determining resource bottlenecks, and expanding them to improve the end-users"" experience. A basic requirement for providing such management is to identify the components that combine to provide a service. This set of components that participates in providing a service comprises a service configuration.
One approach to service configuration identification is manual inspection. An operator, while installing a service, or after installing a service, can enumerate and store the configuration description in a repository that can be accessed by a management solution. For a limited number of services with a limited number of components each, this is an adequate approach for determining configurations. For a large number of services, or for services with a large number of components, this approach is not very scalable, as manually updating a repository for a large number of service components can quickly become overwhelming. Maintaining a dynamic list of components, as new service components are made available, can also be tedious.
Another approach is for the service itself to record its configurations with management software. With multiple management requirements on any given service, this approach is not very practical.
A more practical approach is for services to register their configurations in a standard repository. Then, different management software can glean the appropriate information from this repository. Systems such as Microsoft""s Systems Management Server and Common Information Model (CIM) from the Distributed Management Task Force (DMTF) promise to provide such a standard repository.
Another common situation is when services do not store information about their components in any standard way. The configuration information has to be derived or deduced from observing properties of the service and its incarnations on the various nodes in a network. This approach has been explored by Ramanathan et al., xe2x80x9cAuto-Discovery Techniques for Internet Service Managementxe2x80x9d HPL Technical Report #HPL-99-43. The approach described therein works well for discovering service components.
However, for discovering a set of related service components that make up a bigger service, it falls short in two ways: (1) once a service component is discovered, there is no mechanism to effectively limit the number of machines to be examined for a set of related service components; and (2) there is no mechanism to match instances of service components into a group of related services.
Thus, there is a need in the art for an improved method and apparatus to perform auto-discovery of distributed services. The auto-discovery system should efficiently discover component instances of a distributed service. Upon discovering a component instance, the system should efficiently search the distributed service for other related component instances. Upon discovering a set of component instances, the system should determine relationships between the component instances and match them into groups of related services. The auto-discovery system should also be applicable to a wide range of distributed services.
This disclosure is directed towards a method and apparatus for auto-discovering configurations for service management and scoping the discovery of service components.
The auto-discovery involves (1) selecting a model of the configuration of the service; (2) determining, from the model, xe2x80x9cscope hintsxe2x80x9d that limit the possible locations of related components; (3) determining an instance of a root component of the service; (4) using scope hints to limit the search for auxiliary component instances coupled to the root service component instance; (5) determining when a quorum of component instances comprising a complete distributed service has been discovered; (6) determining the parent service component of each discovered service component by instance matching; and (7) using the instance match information to determine a discovery tree of component instances that have the same structure as the service map, share a common root component instance, and define a service group.
This auto-discovery system (1) is applicable to a wide range of distributed services; (2) efficiently discovers instances of service components; (3) upon discovering an instance of a new component on a distributed service, efficiently searches the distributed service for other related components; and (4) upon discovering a set of service components, determines the relationships between instances of service components and matches them into groups of related services.
These and other objects, features, and advantages of the present invention will be apparent from the included drawings and from the following detailed description.